package com.example.tests.Movie;

import com.example.model.Movie;
import com.example.pages.*;
import com.example.tests.BaseTest;
import org.junit.*;
import static org.junit.Assert.*;
import java.io.File;


public class MovieTest extends BaseTest {
    private String baseUrl;
    private MovieAddPage movieAddPage;
    private LoginPage loginPage;
    private MovieListPage movieListPage;
    private MoviePage moviePage;

    @Test
    public void testCRUDMovie() throws Exception {
        goToHomePage()
            .loginWithValidCredentials("admin", "admin")
            .goToMovieAddPage()
            .createMovie(Movie.createValidMovie())
            .editMovie()
//        String id = createMovie();
//        moviePage.editMovie();
            .convertFormToMovie();

//        assertEquals("Imdb number совпадают", "123", movieAddPage.getImdbid());
//        assertEquals("Title совпадают", "The Shawshank Redemption",movieAddPage.getName());
//        assertEquals("Also known as совпадают", "Побег из Шоушенка",movieAddPage.getAka());
//        assertEquals("Year совпадают", "1994",movieAddPage.getYear());
//        assertEquals("Duration совпадают", "142", movieAddPage.getDuration());
//        assertEquals("Rating совпадают", "9.3", movieAddPage.getRating());
//        assertEquals("Notes совпадают", "111", movieAddPage.getNotes());
//        assertEquals("Taglines совпадают", "222", movieAddPage.getTaglines());
//        assertEquals("Plotoutline совпадают", "333", movieAddPage.getPlotoutline());
//        assertEquals("Plots совпадают", "444", movieAddPage.getPlots());
//        assertEquals("Text_languages_0 совпадают", "555", movieAddPage.getTextLanguages());
//        assertEquals("Subtitles совпадают", "666", movieAddPage.getSubtitles());
//        assertEquals("Audio совпадают", "777", movieAddPage.getAudio());
//        assertEquals("Video совпадают", "888", movieAddPage.getVideo());
//        assertEquals("Country совпадают", "999", movieAddPage.getCountry());
//        assertEquals("Genres совпадают", "999", movieAddPage.getGenres());
//        assertEquals("Writer совпадают", "001", movieAddPage.getWriter());
//        assertEquals("Director совпадают", "000", movieAddPage.getDirector());
//        assertEquals("Producer совпадают", "002", movieAddPage.getProducer());
//        assertEquals("Music совпадают", "003", movieAddPage.getMusic());
//        assertEquals("Cast совпадают", "004", movieAddPage.getCast());
//        assertEquals("Director совпадают", "000", movieAddPage.getDirector());
        movieAddPage.save();
        updateMovie();
        moviePage.editMovie();
        assertEquals("Значение imdb number изменилось", "123456", movieAddPage.getImdbid());
        assertNotEquals("Значение notes изменилось", "1234", movieAddPage.getNotes());
        movieAddPage.save();
        deleteMovie();
        assertNull("Фильм удален", movieListPage.getMovieById(id));
        MyPageFactory.getPage(driver,InternalPage.class).logout();
    }

    @Test
    public void testOpenMoviePage(){
        goToHomePage()
            .loginWithValidCredentials("admin", "admin");
        movieListPage.openMoviePageByTitle("The Shawshank Redemption");
        assertTrue("Нахожусь на странице редактирования фильма",moviePage.isMoviePage());
        MyPageFactory.getPage(driver,InternalPage.class).logout();
    }

    private String createMovie() {
        String url = driver.getCurrentUrl();
        return url.substring(url.indexOf("id="),url.length());
    }

    private void updateMovie() {
        moviePage.editMovie();
        movieAddPage.setImdbid("123456");
        movieAddPage.setNotes("123456789");
        movieAddPage.save();
    }

    private void deleteMovie() {
        moviePage.removeMovie();
//                wait
    }

}

